{"version":3,"file":"app.js","sources":["@traceur/generated/TemplateParser/4","@traceur/generated/TemplateParser/3","@traceur/generated/TemplateParser/2","/home/olav/Kilder/phaser/LD29/src/helpers.js","@traceur/generated/TemplateParser/1","@traceur/generated/TemplateParser/0","@traceur/generated/TemplateParser/11","@traceur/generated/TemplateParser/5","@traceur/generated/TemplateParser/7","/home/olav/Kilder/phaser/LD29/src/nutrients.js","@traceur/generated/TemplateParser/6","@traceur/generated/TemplateParser/9","@traceur/generated/TemplateParser/8","@traceur/generated/TemplateParser/10","/home/olav/Kilder/phaser/LD29/src/plant.js","@traceur/generated/TemplateParser/12","/home/olav/Kilder/phaser/LD29/src/states/game.js","@traceur/generated/TemplateParser/13","/home/olav/Kilder/phaser/LD29/src/states/gameover.js","/home/olav/Kilder/phaser/LD29/src/states/preload.js","/home/olav/Kilder/phaser/LD29/src/states/splash.js","/home/olav/Kilder/phaser/LD29/src/main.js","@traceur/generated/TemplateParser/14"],"names":[],"mappings":"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","sourcesContent":["System.register($__placeholder__0, [], $__placeholder__1);","function() {\n $__placeholder__0\n }","var __moduleName = $__placeholder__0;","export function distance(x1, y1, x2, y2) {\n return Math.sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));\n}","return $__placeholder__0","get $__placeholder__0() { return $__placeholder__1; }","$traceurRuntime.assertObject($__placeholder__0)","System.get($__placeholder__0)","var $__placeholder__0 = $__placeholder__1","import {distance} from './helpers';\n\nclass Nutrient extends Phaser.Sprite {\n constructor(game, x, y) {\n super(game, x, y, 'nutrients');\n this.scale.x = 0.75;\n this.scale.y = 0.75;\n this.anchor.x = 0.5;\n this.anchor.y = 0.5;\n this.rotation = Math.PI*Math.random()*2;\n this.connected = false;\n this.inputEnabled = true;\n this.events.onInputDown.add(this.click, this);\n this.events.onInputOver.add(this.hover, this);\n this.events.onInputOut.add(this.out, this);\n }\n\n nearestRoot() {\n var nearest;\n var rootDist = 9999999;\n var walkRoots = (children) => {\n for (var root of children) {\n if (root.children.length) {\n walkRoots(root.children);\n\n } else if (!root.target) {\n var dist = distance(root.startX, root.startY, this.x, this.y);\n if (dist < rootDist) {\n rootDist = dist;\n nearest = root;\n }\n }\n }\n };\n walkRoots(this.game.plant.roots);\n\n return [nearest, rootDist];\n }\n\n click() {\n if (this.root) return;\n\n var nearest = this.nearestRoot();\n if (nearest[0]) {\n var localDist = nearest[1] / (this.game.width + this.game.height);\n var energyCost = parseInt(localDist * 200);\n var waterCost = parseInt(localDist * 100);\n\n if (this.game.stats.energy >= energyCost && this.game.stats.water >= waterCost) {\n nearest[0].setTarget(this);\n this.game.stats.energy -= energyCost;\n this.game.stats.water -= waterCost;\n this.game.add.audio('build').play();\n } else {\n this.game.add.audio('error').play();\n }\n }\n }\n\n hover() {\n var nearest = this.nearestRoot();\n if (nearest[0]) {\n var localDist = nearest[1] / (this.game.width + this.game.height);\n this.game.costText.setText(`Cost: \\n${parseInt(localDist * 200)} energy\\n${parseInt(localDist * 100)} water`);\n }\n }\n\n out() {\n this.game.costText.setText('');\n }\n\n updateDay() {\n if (!this.connected) return;\n this.scale.x *= 0.98;\n this.scale.y *= 0.98;\n\n if (this.scale.x < 0.05) {\n this.alive = false;\n this.game.stats[this.nutrientName+'PerDay']--;\n }\n }\n}\n\nexport class Water extends Nutrient {\n constructor(game, x, y) {\n super(game, x, y);\n this.tint = 0x4F94CF;\n this.nutrientName = 'water'\n }\n}","$traceurRuntime.superCall($__placeholder__0, $__placeholder__1, $__placeholder__2,\n $__placeholder__3)","var $__placeholder__0 = $__placeholder__1","($traceurRuntime.createClass)($__placeholder__0, $__placeholder__1, $__placeholder__2,\n $__placeholder__3)","\n for (var $__placeholder__0 =\n $__placeholder__1[Symbol.iterator](),\n $__placeholder__2;\n !($__placeholder__3 = $__placeholder__4.next()).done; ) {\n $__placeholder__5;\n $__placeholder__6;\n }","import {distance} from './helpers';\n\nexport class Plant extends Phaser.Group {\n constructor(game) {\n super(game, undefined, 'plant', true);\n\n this.stem = [new Stem(game)];\n this.stemBitmap = new Phaser.BitmapData(game, 'stem', game.width, game.height - game.height / 3);\n this.leafPositions = [];\n\n this.roots = [new Root(game), new Root(game), new Root(game)];\n this.rootBitmap = new Phaser.BitmapData(game, 'roots', game.width, game.height / 3);\n\n this.stemsGrowing = 1;\n this.rootsGrowing = 0;\n\n this.add(new Phaser.Sprite(game, 0, this.game.groundY, this.rootBitmap));\n this.add(new Phaser.Sprite(game, 0, 0, this.stemBitmap));\n this.drawRoots();\n this.drawStem();\n }\n\n drawRoots() {\n var ctx = this.rootBitmap.context;\n ctx.lineCap = 'round';\n ctx.lineJoin = 'round';\n ctx.clearRect(0, 0, this.game.width, this.game.height);\n ctx.moveTo(this.game.width / 2, 0);\n\n var totalRoots = 0;\n var usedRoots = 0;\n\n var drawChildren = (children) => {\n for (var root of children) {\n ctx.strokeStyle = `#${(0xB78139 + parseInt(Math.random() * 100)).toString(16)}`;\n ctx.lineWidth = 2 + 3 / root.depth;\n\n totalRoots++;\n if (!root.target) continue;\n else usedRoots++;\n\n ctx.beginPath();\n ctx.moveTo(root.startX, root.startY);\n\n var percent = root.progress / root.distance;\n if (percent < 1) {\n root.progress += 1;\n var angle = Math.atan2((root.endY - root.startY), (root.endX - root.startX));\n var toX = root.startX + Math.cos(angle) * root.distance * percent;\n var toY = root.startY + Math.sin(angle) * root.distance * percent;\n ctx.lineTo(toX, toY);\n } else {\n ctx.lineTo(root.endX, root.endY);\n root.split(); // will only split once.\n }\n\n ctx.closePath();\n ctx.stroke();\n if (root.children.length) drawChildren(root.children);\n }\n };\n drawChildren(this.roots);\n this.rootBitmap.dirty = true;\n\n this.game.textLines[1] = `Roots used: ${usedRoots}/${totalRoots}`;\n }\n\n priceLeaf() {\n this.game.costText.setText(`Cost: \\n${15} energy\\n${10} water`);\n }\n\n growLeaf() {\n var energyCost = 15;\n var waterCost = 10;\n if (this.leafPositions.length === 0 || this.game.stats.energy < energyCost || this.game.stats.water < waterCost) {\n this.game.add.audio('error').play();\n return;\n }\n\n var leafPos = this.leafPositions.shift();\n var leaf = this.game.add.sprite(leafPos[0], leafPos[1], 'leaf');\n leaf.update = function () {\n if (this.baseScale < 0.4) {\n this.baseScale += 0.02;\n }\n this.scale.x = this.baseScale;\n this.scale.y = this.baseScale;\n };\n leaf.anchor.x = 1.0;\n leaf.anchor.y = 0.5;\n leaf.scale.y = 0.4;\n leaf.baseScale = 0;\n leaf.animSeed = Math.random();\n leaf.rotation = leafPos[2];\n leaf.bringToTop();\n this.game.add.audio('build').play();\n this.game.stats.leaves++;\n this.game.stats.waterPerDay--;\n this.game.stats.energyPerDay++;\n\n this.game.stats.energy -= energyCost;\n this.game.stats.water -= waterCost;\n }\n\n findStem(rootStem) {\n var depth = 5;\n var lowestStem;\n var findSplit = (stems) => {\n for (var stem of stems) {\n if (stem.depth < depth && stem.children.length === 0) {\n depth = stem.depth;\n lowestStem = stem;\n }\n findSplit(stem.children);\n }\n };\n findSplit(rootStem);\n\n return [lowestStem, depth];\n }\n\n priceStem() {\n var stem = this.findStem(this.stem);\n if (stem[0]) {\n this.game.costText.setText(`Cost: \\n${5 + stem[1]} energy\\n${5 + stem[1] * 2} water`);\n }\n }\n\n growStem() {\n console.log(this.stem);\n var stem = this.findStem(this.stem);\n\n var energyCost = 5 + stem[1];\n var waterCost = 5 + stem[1] * 2;\n this.stemsGrowing += 3;\n\n if (stem[0] && this.game.stats.energy >= energyCost && this.game.stats.water >= waterCost) {\n stem[0].split();\n this.game.stats.energy -= energyCost;\n this.game.stats.water -= waterCost;\n this.game.add.audio('build').play();\n } else {\n this.game.add.audio('error').play();\n }\n }\n\n drawStem() {\n var ctx = this.stemBitmap.context;\n ctx.lineCap = 'round';\n ctx.lineJoin = 'round';\n ctx.clearRect(0, 0, this.game.width, this.game.height);\n ctx.moveTo(this.game.width / 2, 0);\n\n var drawChildren = (children) => {\n var numSplit = children.length;\n var i = 0;\n for (var stem of children) {\n ctx.strokeStyle = `#08${(160 - Math.random() * 20).toString(16).substr(0, 2)}00`;\n ctx.lineWidth = 2 + 4 / stem.depth;\n\n ctx.beginPath();\n ctx.moveTo(stem.startX, stem.startY);\n var finishGrowth = false;\n\n if (stem.progress < 1) {\n stem.progress += 0.05;\n\n if (stem.progress >= 1) finishGrowth = true;\n }\n\n var endX;\n var angle = Math.PI * (-numSplit / 2) * i;\n if (stem.depth === 1) {\n endX = stem.startX\n }\n else {\n endX = stem.startX + Math.cos(angle) * stem.depth * 10 * stem.progress;\n }\n\n var yAdd = 35 * stem.progress;\n var endY = stem.startY - Math.sin(angle) * 20 * stem.progress;\n\n if (finishGrowth) {\n // Twice\n var leafX = stem.startX + Math.cos(angle) * stem.depth * 10 * 0.5;\n var leafY = stem.startY - Math.sin(angle) * 20 * 0.5 - 17.5;\n\n if (stem.depth == 1) leafX -= 4;\n this.leafPositions.push([leafX, leafY, Math.PI / 4 + (Math.random() - 0.5) * Math.PI / 2]);\n this.leafPositions.push([leafX, leafY, Math.PI - Math.PI / 4 + (Math.random() - 0.5) * Math.PI / 2]);\n this.stemsGrowing--;\n }\n\n ctx.lineTo(endX, endY - yAdd);\n if (stem.progress < 1) {\n stem.progress += 0.025;\n } else {\n stem.endX = endX;\n stem.endY = endY - yAdd;\n }\n\n\n ctx.closePath();\n ctx.stroke();\n if (stem.children.length) drawChildren(stem.children);\n i++;\n }\n };\n drawChildren(this.stem);\n this.stemBitmap.dirty = true;\n }\n}\n\nclass Stem {\n constructor(game, parent) {\n this.game = game;\n this.parent = parent;\n this.children = [];\n\n if (parent) {\n this.startX = parent.endX;\n this.startY = parent.endY;\n this.depth = parent.depth + 1;\n } else {\n this.startX = game.width / 2;\n this.startY = game.height - game.height / 3;\n this.depth = 1;\n }\n\n this.progress = 0;\n this.done = false;\n }\n\n split() {\n console.log(this.children.length);\n if (this.progress >= 1 && this.children.length == 0) {\n this.children = [new Stem(this.game, this), new Stem(this.game, this), new Stem(this.game, this)];\n this.done = true;\n return true;\n }\n }\n}\n\nclass Root {\n constructor(game, parent) {\n this.game = game;\n this.parent = parent;\n this.children = [];\n if (parent) {\n this.startX = parent.endX;\n this.startY = parent.endY;\n this.depth = parent.depth + 1;\n } else {\n this.startX = game.width / 2;\n this.startY = 0;\n this.depth = 1;\n }\n\n this.progress = 0;\n this.distance = 0;\n }\n\n setTarget(nutrient) {\n if (this.target) return;\n this.target = nutrient;\n this.target.root = this;\n\n this.endX = nutrient.x;\n this.endY = nutrient.y;\n\n this.distance = distance(this.startX, this.startY, this.endX, this.endY);\n this.game.plant.rootsGrowing++;\n }\n\n split() {\n if (this.target.connected) return false;\n if (this.progress >= this.distance && this.children.length == 0) {\n this.target.connected = true;\n this.target.alive = true;\n this.children = [new Root(this.game, this), new Root(this.game, this)];\n this.game.plant.rootsGrowing--;\n this.game.stats.waterPerDay++;\n }\n }\n}","($traceurRuntime.createClass)($__placeholder__0, $__placeholder__1, $__placeholder__2)","import {Plant} from '../plant';\nimport {Water} from '../nutrients';\n\nexport class GameState extends Phaser.State {\n create() {\n this.addText();\n\n this.game.stats = {\n day: 1,\n lastDay: new Date().getTime(),\n energy: 25,\n energyPerDay:0,\n water: 25,\n waterPerDay:0,\n leaves: 0,\n maxLeaves: 2\n };\n\n console.log('In game!');\n this.game.groundY = this.game.height - this.game.height / 3;\n this.game.add.tileSprite(0, this.game.groundY + 5, this.game.width, 300, 'dirt');\n this.game.add.tileSprite(0, this.game.groundY - 20, this.game.width, 64, 'grass');\n\n this.game.clouds = this.game.add.group(null, 'clouds', true);\n this.addClouds();\n\n this.game.plant = new Plant(this.game);\n\n this.game.nutrients = this.game.add.group(undefined, 'nutrients', true);\n this.game.nutrients.y = this.game.groundY;\n for (var i = 0; i < 50; i++) {\n this.addNutrient();\n }\n\n this.addButtons();\n }\n\n addText() {\n this.game.gameText = this.game.add.text(20, 20, '', {\n font: '18px Arial',\n fill: '#005713'\n });\n this.game.textLines = [];\n\n this.game.costText = this.game.add.text(300, 20, '', {\n font: '18px Arial',\n fill: '#005713'\n });\n }\n\n addClouds() {\n for (var i = 0; i < 15; i++) {\n var cl = this.game.add.sprite(Math.random() * 1280, Math.random() * 300 + 100, 'clouds');\n cl.speed = (Math.random() - 0.5) * 5;\n cl.anchor.x = 0.5;\n cl.anchor.y = 0.5;\n cl.scale.x = cl.speed / 3;\n cl.scale.y = cl.speed / 3;\n this.game.clouds.add(cl);\n }\n }\n\n addButtons() {\n var stemBtn = this.game.add.button(this.game.width - 276, 20, 'grow_stem', this.game.plant.growStem, this.game.plant, 1, 0, 2);\n stemBtn.onInputOver.add(this.game.plant.priceStem, this.game.plant);\n stemBtn.onInputOut.add(function () {\n this.game.costText.setText('');\n }, this);\n\n var leafBtn = this.game.add.button(this.game.width - 276, 104, 'grow_leaf', this.game.plant.growLeaf, this.game.plant, 1, 0, 2);\n leafBtn.onInputOver.add(this.game.plant.priceLeaf, this.game.plant);\n leafBtn.onInputOut.add(function () {\n this.game.costText.setText('');\n }, this);\n this.game.add.button()\n }\n\n update() {\n //console.log(1)\n this.game.clouds.forEachExists(function (cloud) {\n cloud.x += cloud.speed;\n if (cloud.x < -200) cloud.x = this.game.width + 200;\n else if (cloud.x > this.game.width + 200) cloud.x = -200;\n }, this);\n\n if (this.game.stats.lastDay + 1000 < new Date().getTime()) {\n this.game.stats.day++;\n this.game.stats.lastDay = new Date().getTime();\n this.processDay();\n console.log('Day', this.game.day)\n }\n\n this.game.textLines[0] = `Day: ${this.game.stats.day}`;\n\n if(this.game.plant.rootsGrowing > 0) this.game.plant.drawRoots();\n if(this.game.plant.stemsGrowing > 0) this.game.plant.drawStem();\n\n this.game.stats.leavesLeft = this.game.plant.leafPositions.length;\n this.game.textLines[2] = `Leaves: ${this.game.stats.leaves}/${this.game.stats.leaves+this.game.stats.leavesLeft}`;\n\n this.game.textLines[4] = `Energy: ${this.game.stats.energy} (${this.game.stats.energyPerDay} per day)`;\n this.game.textLines[5] = `Water: ${this.game.stats.water} (${this.game.stats.waterPerDay} per day)`;\n\n this.game.gameText.setText(this.game.textLines.join('\\n'));\n\n if(this.game.stats.water < 0) {\n this.game.state.start('gameover');\n }\n }\n\n processDay() {\n this.game.stats.energy += this.game.stats.energyPerDay;\n this.game.nutrients.forEachAlive(function (nutrient) {\n nutrient.updateDay();\n });\n\n this.game.stats.water += this.game.stats.waterPerDay;\n\n if (Math.random() > 0.8) {\n this.addNutrient();\n }\n }\n\n addNutrient() {\n if (this.game.nutrients.length >= 250) return;\n this.game.nutrients.add(new Water(this.game, Math.random() * this.game.width, Math.random() * 170 + 20));\n }\n}\n\n","$traceurRuntime.defaultSuperCall(this,\n $__placeholder__0.prototype, arguments)","export class GameOverState extends Phaser.State {\n preload() {\n console.log('Game over...', this.game);\n this.game.plant.destroy();\n this.game.clouds.destroy();\n this.game.nutrients.destroy();\n var rect = new Phaser.Rectangle(0, 0, this.game.width, this.game.height);\n\n var gameOverText = `Game over!\\n\\nYour plant lived for ${this.game.stats.day} days\\n\\nEnergy score: ${this.game.stats.energy}`;\n\n this.game.add.text(this.game.width / 2 - 200, 50, gameOverText, {\n font: '32px Arial',\n fill: '#005713',\n align: 'center'\n });\n\n this.game.add.button(this.game.width / 2 - 128, 300, 'tweet_score', this.tweet, this, 1, 0, 2);\n this.game.add.button(this.game.width / 2 - 128, 384, 'start_game', this.restart, this, 1, 0, 2);\n ga('send', 'event', 'LD29', `Energy: ${this.game.stats.energy}. Days: ${this.game.stats.day}`);\n }\n\n tweet() {\n var text = encodeURIComponent(`My plant lived for ${this.game.stats.day} days and got an energy score of ${this.game.stats.energy}. Can you beat me? #LD48`);\n window.open(`https://twitter.com/share?text=${text}&via=lindekleiv`);\n ga('send', 'event', 'LD29', 'Tweet');\n }\n\n restart() {\n window.location = '?autostart=true';\n }\n\n}\n\n","export class PreloadState extends Phaser.State {\n preload() {\n var loadingText = this.game.add.text(this.game.width / 2 - 100, 65, 'Loading...', {\n font: '32px Arial',\n fill: '#005713',\n align: 'center'\n });\n\n console.log('Loading...', this.game);\n\n this.game.stage.backgroundColor = 0x8ADDFF;\n\n // Other graphics\n this.game.load.image('title_screen', 'img/title_screen.png');\n\n // Textures\n this.game.load.image('dirt', 'img/dirt.png');\n this.game.load.image('grass', 'img/grass.png');\n this.game.load.image('clouds', 'img/clouds.png');\n this.game.load.image('nutrients', 'img/nutrients.png');\n this.game.load.image('leaf', 'img/leaf.png');\n\n // Buttons\n this.game.load.spritesheet('grow_stem', 'img/buttons/grow_stem.png', 256, 64);\n this.game.load.spritesheet('grow_leaf', 'img/buttons/grow_leaf.png', 256, 64);\n this.game.load.spritesheet('start_game', 'img/buttons/start_game.png', 256, 64);\n this.game.load.spritesheet('tweet_score', 'img/buttons/tweet_score.png', 256, 64);\n\n // Sounds\n this.game.load.audio('error', 'sound/error.ogg', true);\n this.game.load.audio('build', 'sound/build.ogg', true);\n this.game.load.audio('music', 'sound/music.ogg', true);\n\n var finished = 0;\n this.load.onFileComplete.add(function(){\n finished++;\n loadingText.setText(`Loading ${finished}/13`)\n }, this);\n }\n\n create() {\n this.game.state.start('splash');\n }\n}\n\n","export class SplashState extends Phaser.State {\n preload() {\n if (window.location.href.indexOf('autostart') != -1) {\n var music = this.game.add.audio('music');\n music.loop = true;\n music.play();\n this.game.state.start('game');\n }\n\n console.log('Splash...', this.game);\n\n }\n\n create() {\n var music = this.game.add.audio('music');\n music.loop = true;\n music.play();\n\n this.game.add.sprite(this.game.width / 2 - 310, 0, 'title_screen');\n this.game.add.button(this.game.width / 2 - 128, 190, 'start_game', this.startGame, this, 1, 0, 2);\n\n this.addInstructions();\n }\n\n startGame() {\n this.game.state.start('game');\n }\n\n addInstructions() {\n var instructions = `How to play:\n - Grow your plant and harvest energy from the sun.\n - Extend your roots to get more water.\n - Leaves are expensive, but more leaves will give you more energy.\n - Try to survive for as long as possible.\n\nAbout the game:\n \"Root cause\" was made by Olav Lindekleiv (@lindekleiv on Twitter)\n in 48 hours for Ludum Dare 29. Theme: Beneath the surface\n\nSoftware/libraries used:\n Phaser.js, Traceur.js, WebStorm, GIMP, LMMS, Bfxr.net\n `;\n this.game.add.text(this.game.width / 2 - 275, 475, instructions, {\n font: '16px Arial',\n fill: '#005713'\n })\n }\n}\n\n","import {PreloadState} from './states/preload';\nimport {SplashState} from './states/splash';\nimport {GameState} from './states/game';\nimport {GameOverState} from './states/gameover';\n\nclass Game extends Phaser.Game {\n constructor() {\n super(document.body.clientWidth, document.body.clientHeight, Phaser.AUTO);\n this.state.add('preload', PreloadState);\n this.state.add('splash', SplashState);\n this.state.add('game', GameState);\n this.state.add('gameover', GameOverState);\n\n this.state.start('preload');\n }\n}\n\nwindow.onload = function () {\n var game = new Game();\n};","System.get($__placeholder__0 +'')"]}